package com.xdwanj.pojo;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

@Data                //生成getter,setter等函数
@NoArgsConstructor    //生成全参数构造函数
@AllArgsConstructor    //生成无参数构造函数
@Builder            //实现Builder设计模式
public class User {
    /**
     * 用户主键
     */
    private Integer id;

    /**
     * 姓名
     */
    private String name;

    /**
     * 用户名
     */
    private String username;

    /**
     * 密码
     */
    private String password;

    /**
     * 性别
     */
    private Integer sex;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 手机号码
     */
    private String phoneNum;

    /**
     * 注册时间
     */
    private Date registerDate;

    /**
     * 家庭住址
     */
    private String address;

    /**
     * 出生年月
     */
    private Date birthday;

    /**
     * 年龄
     */
    private Integer age;

    /**
     * 宠物列表
     * 因为宠物不一定只有一个
     */
    private List<Pet> petList;

    /**
     * 宠物主键
     */
    private Integer petId;

    /**
     * 商品订单列表
     */
    private List<Commodity> orders;

    /**
     * 购物车
     */
    private List<Commodity> shoppingCart;

    /**
     * 购物车主键
     */
    private Integer ShoppingCartId;

    /**
     * 用户头像
     */
    private String image;

    /**
     * 用于返回用户年龄
     *
     * @return 用户年龄
     */
    public Integer getAge() {
        if (this.age != null) {
            return age;
        }

        if (this.birthday != null) {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");
            Date currenDate = new Date();

            String currentYear = dateFormat.format(currenDate);
            String birthYear = dateFormat.format(this.birthday);

            return Integer.parseInt(currentYear) - Integer.parseInt(birthYear);
        }

        return null;
    }
}
